package main

import "fmt"
type People struct {
	Name string
}
func (p *People) String()string  {
	return fmt.Sprintf("print：%v",*p) //Sprintf格式化函数不能传递指针类型，需要取地址的值传进来
	//return fmt.Sprintf("print：%v",p.Name) //还可以改成p.Name,也可以。这样就变成值类型了。就可以输出对象属性值了。
}
func main() {
	p := &People{"111"}
	p1:=p.String()
	fmt.Println(p1)
}

//运行后会报错，fatal error: runtime: out of memory
//问题主要出在方法String里面的返回值上，方法函数String需要返回的是string类型，但是
//fmt.Sprintf的参数传递的是指针类型，所以编译不通过，需要传递的类型可以是变量，常量，字符串，数组，小数，整数等值类型。
//还可以改成p.Name,也可以。这样就变成值类型了。就可以输出对象属性值了。